{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "646efde1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最近 2 年上涨月数 / 总月数：10 / 24 ≈ 41.67%\n",
      "最近 3 年上涨月数 / 总月数：14 / 36 ≈ 38.89%\n",
      "最近 5 年上涨月数 / 总月数：28 / 60 ≈ 46.67%\n",
      "最近 8 年上涨月数 / 总月数：45 / 96 ≈ 46.88%\n",
      "最近 10 年上涨月数 / 总月数：59 / 120 ≈ 49.17%\n",
      "最近 13 年上涨月数 / 总月数：76 / 156 ≈ 48.72%\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABw2ElEQVR4nO3dd3hUVf7H8c+dySQhCSFABIJESCjSBRREUYoioqIo4s8uuIuuiGJva1vXxrroYsGKS1HsqKCIhapiYRGloxAJvYWE9DYz9/dHmEsmHcjcyYT363nmMXPmzsz3nHs9GT45945hmqYpAAAAAAAAwEaOYBcAAAAAAACAYw+hFAAAAAAAAGxHKAUAAAAAAADbEUoBAAAAAADAdoRSAAAAAAAAsB2hFAAAAAAAAGxHKAUAAAAAAADbEUoBAAAAAADAdoRSAACgTisuLg52CQAAAAgAQikAAFCn3XbbbbrooosO+3k5OTk6cOBAjW9er9fv+RkZGVq5cqV1Py8vT7/99pvy8vIOu5Z//vOfmjZt2mE/L1DmzZunNWvW1GjbKVOmaOvWrZKkgoICFRUV+T3+3XffaerUqUdUx/jx4/X444/XaNuCggJJ0s8//6y33npLUsk+9lm0aJHS09OPqA4AABAchFIAAKDOKi4u1qxZszR06NDDfu7gwYPVuHHjGt/++OMPv+d/8cUXOv300637f/zxh3r27Knff/9dkvTss8/q/vvv97u9/fbb5erYsGGDnnjiCf36669KTU2t9JaSklKuBp9WrVopLCys2tuePXtqNDZ//etfrWCnKsXFxZo2bZp69uypzz77TGPGjFFERIQMw5BhGFqzZo2+//57vfnmm9Zzzj//fC1YsMDvNR544IFygZHX69U777xTo3pXrFihrl27ateuXVq8eLEmT54sSRo6dKimT58uSRo9erQmTJhQo9cDAAB1A6EUAACokWnTpskwDF144YVW27PPPivDMDR69GirbdGiRerZs6diY2M1cuRIZWRkHPF7vv7669q7d6/GjRtnBSGlb61bt/ZbLVNaRESE/vGPf8g0Tev2yiuv6K233vJr27x5syTJ5XJZzy0oKJDL5VJERITVFh4ebv3X7XZr6tSpWr58ueLi4hQXF6e5c+fqiy++8KuhsLBQV111lQzD0PTp09WjR49KbyeddJLOP//8CvvidDo1ZcoUud3uCm+LFy+Wx+NRbGxsjcY1IiLCr2+VcblcWrhwoS666CItWLBAkyZN0r59+7R27VprLCIjI63XWr9+vb788kslJiZar5Genq7p06frmmuukWmaVvtXX32l/Px8jRs3rto6evXqpf79++vvf/+7XC6XwsPDtWzZMm3YsEEjR47U3r17tXXrVo0cObJG/QcAAHVDWLALAAAAoWXVqlXWz6VPb5OktWvX6oILLtCFF16of/3rX3rhhRd09dVXlwtraiItLU3//Oc/dcoppygyMlKfffaZ9divv/6qc889V6+88opiYmIqfL7L5ZLD4VB+fr527typ8PBwLViwQHFxcTrrrLNUVFSkhIQEa3tf6CRJ11xzjWbNmiVJMgzD73W7du2qTz75RGFhYTrjjDN0//33S5KWL1+usLBDH628Xq+uvfZapaSkaPny5erWrdthj4GP0+ms0XY1CZp8r+dw1Oxvk+Hh4Zo6darcbrfVP9+pdC6XywoIJenNN9/UkCFD1KFDB+v5zZs314cffqiBAwdqwoQJeuCBBySVBI55eXlq2rRphe/7448/qm/fvpKkDz/8UO3bt1dkZKR++ukn7d69W999952GDx+ud999V9HR0YqLi1O7du104MABSZLb7VZUVJSioqJq1E8AAGA/VkoBAIDDsnXrVusf/qUDKkl68skn1bZtW7377rsaMmSIZs6cqe+++07/+9//Dus9TNPU9ddfr65du2rhwoVKSUnRnDlzFBcXJ6/XqxtuuEGjRo2qdGWRJIWFhcnhcOjnn39Wu3btdMIJJ+ijjz7SlClTdPzxxyspKUmrV6+2ti8dPr3zzjuaNWuWoqOjrRVV69evl1RyOt6FF15YYVDkC3oKCgp0+eWXa86cOZo1a5auu+66Cld6lb699tprlfalpgFSTberKY/HY512FxYWpqKiIh04cEBZWVmS/C9Cn5eXp//+978aP358udfp16+fHn74YT3yyCP67bfftG7dOs2ZM0dz5szR5s2b/W633367EhISdOqpp1rPX7Zsmb777jtNnz5dH3zwgTIyMvTDDz8oPT1dS5cu1RdffKEDBw6oadOm1umYxx13nD7++ONaHQ8AAFC7WCkFAABqrHXr1ioqKtKqVat02mmnaf369erTp4/1+IIFCzR+/HgrHGnUqJEGDRqk+fPnq3fv3jV+n0cffVTff/+9fv31VzVs2FDPP/+8/vrXv6pNmza68847dcIJJ1jXFaqMYRhyOp3q16+f9u3bp/DwcI0bN05NmzbVk08+qcLCQjVs2FA7duwo99zw8HBrldUZZ5wh6dDqIKfTKafTKcMw9N///lfz58+XVBJWDRs2TFLJiqXOnTvrxhtv1ODBg5WZmalvvvlGvXr10qWXXqoHHnjAb9zOOOMMNWnSpMr+XH/99br++utrPIbVWbFihaZMmWLd93q9KigoUJs2bawLy7/88st6/PHH9fzzz+vKK6/Uq6++qttuu816TumLnr/++utq3ry5zjvvvArf74EHHlCDBg3UpUsXjRw5UoMHD9aFF16oFStWaNu2bRo6dKgiIiK0bNkynX/++X4h4b///W/9+eefOvvss9W1a1c1btxYzZs317333qtmzZqpefPmmjJliv76179KkiIjIzV//nxrpRUAAKibCKUAAMBh6datm1auXKnGjRvL4XBYp2q53W7t3btX3bt399s+OTlZGzduPKz3uOWWWzRw4EC1adNGknTZZZdpzpw5GjBggLp06aIlS5b4nW5XEY/Ho7CwMK1evVoOh0Mul0s5OTlyuVzaunWrPB6PCgsLKz39T5IaNGig77//XpKUmpqqpKQk6zHTNPWXv/xF//jHPyTJ73pGhmHoscces+5nZmaqVatWatSokU444QSNGDFCn3/+uQYOHCipJPCqLpSaOnWq37W7Svv+++915plnVvn8sr7++mt9++231n2v16vCwkINHz7cCqWuuOIKffnll7rqqqvUsmVLeb1e9e7dW8uWLbOe5wvlRowYoV69epU73dHH5XLpnnvu0Q8//KCvv/5ay5cvlyR9++23uv/++5WZmam0tDT99NNP1imRUsk4v/vuuxo/frxuvfVWxcbG6qOPPlKrVq101lln6dZbb1VOTo4yMzMllVzDqrCwUAkJCX6nUwIAgLqH39QAAOCwdOvWTatWrVLjxo3VqVMn6zS2/Px8SVJcXJzf9jExMUpJSTms92jWrJnOOussSdKmTZv0zDPP6IMPPtD555+v+fPn66qrrtJNN92kc845p9LgISsrSw0aNNCQIUOUn5+vsLAwKzCZNWuWFUp9+eWXldaRm5tbacji9Xqr7IPvYumSlJGRobi4ODmdTk2dOlX5+flKSUmxQqnc3FzFxsaqoKBADoejXOBWWFhY5Xsdifvvv98K1Cpz3HHH6fPPP9eUKVM0YMAA/fzzz4qOjrYe//vf/66FCxdq27Zt+uc//ylJmjFjhiTpb3/7W7nVcTt37tTpp5+uzZs3q0WLFpJKwsz4+Hjr4uv79u1Tw4YNrefk5uZq3rx5evnll3XxxRfrH//4h8477zz9/e9/V9u2bfXYY4+pefPm+vXXXyVJu3btktPp1AknnHDUYwQAAAKLa0oBAIDD4lsptWrVKr+Ld/susl32WkuGYViBVU3t379fU6dO1ZAhQ9S5c2dlZWVpxYoVmjt3rtasWaOmTZvqkksuUZMmTTR48GDdeeed+uqrr8q9RsOGDbVv3z7t2LFDW7ZsUWpqqlJTU7VlyxZt375dxcXFatu2baV1lL6mlO9b+nzcbre+//57TZgwQRMmTNDvv//u9/jIkSMVFhamsLAwmaaphIQE65TCDz/8UGPGjLGuJ7V792716dNHDRo00HPPPVeujgMHDigvL08HDhyo8FbZNxDWBsMwdMMNN0gqWYUUHh6uAwcOKDs7Ww0aNLCu3bV//37NnDlTYWFh8ng88ng8fq+Tn5+vXr16aerUqVYgJZWsQEtLS7OCtyZNmvh9E2JMTIwefPBB9erVSx9//LEmTpyoAQMGaPv27erSpYs6deqkF154QUuWLJFU8g2A7du393sNAABQN7FSCgAAHJZu3bpp7dq1atSokYYOHWpdLDw8PFyNGjXS9u3b/bbfv3+/3+qaqqSlpWno0KH69ddf1aZNG5155pmaP3++teolNTVVLpdLjzzyiMaPH6/58+dr5cqVeuutt3T55Zdbr+N2u7Vt2za1bNlS+fn5aty4cYXvV/pC3aXt3LlT2dnZkmRd1N13ce99+/apRYsWysvL05o1a6z+7ty5UyeffLL1Gr4VQ6mpqTrzzDO1Y8cOHThwQBdccIFeeOEFa1uv16umTZvq999/V+PGjRUZGelXi9vtVk5OjsaNG6dx48bVaBxrW0pKipKTk7V//359/fXXaty4sTp27Kj169erYcOG+vzzz/Xiiy8qMTHRWrlU1quvvqq8vDwNHTrUr33JkiUqLCzUN998Y12Tq6wzzzxT2dnZKi4uVlhYmM477zyZpqm8vDwtW7ZM3bt315gxY/TLL79o6dKl1nXAAABA3cZKKQAAcFg6d+6swsJCzZ8/32+llCSddNJJ1jWYfH755Re1bNmyRq8dHx+v++67T//73/+UkpKit956SwMGDFBSUlK5W8+ePfXcc8/prbfe0p49e/y+rW3jxo0qLCxUUlKSoqKiJEnfffedtepp0aJFcjqdFZ76V1BQoNatW+vmm29WWFiY2rRpozZt2qh///6Kjo5W//79NWfOHO3atUsvvPCCNmzYoA0bNmjIkCF+r9OkSRM1adJEHo9HzZs3V1xcnFq3bq1zzjlHw4YN06effqq4uDirhuOPP17HHXec36lrkrR27VpJJRcm99Vf9vbdd9/VaHyP1N/+9je99NJLeuONN2SapqZOnVouPGvVqpWOP/74CmvJycnRv//9bz388MNKSEiw2n/++Wf98ccfGjt2rJ544gmZplnh++/bt09bt25VgwYNtHz5cuXk5Gjy5MlKTk5W7969FRERoZEjR+q5557TRx99pHPOOad2BwAAAAQEoRQAADgskZGRateunSSVC6VGjhypmTNnWquHfvrpJy1btkyDBw+u8etfdtll6tWrl6SS1VefffZZhUHM1KlTrVMGfd/257N48WI1atRIycnJlQYdVfWvuLhYW7du1cSJE5WRkaEDBw7o7bff1vr161VcXKyOHTsqPz+/3EXdK7Jz505r5ZBhGJo0aZKeeOIJde3aVZKsU+8iIiIqvHbU3LlzFRsbW6P3CoTMzEx9++235S6kXvY0TUkaPHiw3n777XLtDzzwgKKjo8t9c9/YsWP117/+VRMmTNCWLVt07733VlrH008/rYiICM2bN08//PCDnnzySb8Lot9xxx1655135Ha7dckllxxJVwEAgM0IpQAAwGHr1q2b4uPj/Va9SNKYMWPUsmVL9e3bV6NHj9a5556rk08+WcOHDz+i96nuukAVBSOS9MEHH2jAgAEyDEN5eXmSSk4B813DadCgQfJ4PJWevidJ9957r/7zn/9o3759kqR33nlHgwcPVlpamqZOnaq2bduqY8eO1fYhNTVVP/30k/XehmHo7rvvVu/evWUYho4//nirr1dffbXfc/Pz8/Xaa6/pqquuqrSvUvUXXT8ac+fOVevWrdWjR48qt0tJSVGfPn30+eefKzU11WqfM2eOJk+erGeffda6gHteXp6GDx+uwsJCPf3004qNjdWbb76p5557TrfcckuF++Xxxx/X9OnTtWPHDg0YMECbNm3S0qVLrWt5FRQUKCIiQtHR0UpPT6+1/gMAgMDhmlIAAOCwdevWTfv37y/X3qBBA3333Xd66KGHtHTpUl155ZV66qmnKv2GvJrYu3evX8jhk5aWVuEqqHnz5mnx4sXWNZ2ioqKUkZFRbrvU1FStWrVKK1eulCS/6169/vrr+uijj7R8+XI1a9ZMkjRlyhT16tVLzzzzjF577TVNmDDB7/XcbneF39R30003adSoUZX2b+bMmXr++ee1dOnSciu+HnnkEe3evVt33nlnhc+dO3euNm3apIULF6pRo0blHl+xYoVcLle5cK+4uFhpaWnasGFDuef4LlLuW5k1bdo0jRgxotw2Pl6v1wqKbrnlFnXo0EF33HGHPvnkE0nS22+/rYEDB+qiiy6SVHIa5ZgxY+TxeLRgwQKr7vPPP1/Tpk3TX/7yF/3000+aNGmS37WhYmJi1KVLF73++uvq2LGjJk6cqPfee0+//fabvv/+e91+++169NFH9d5772nAgAGaN2+ekpKSKh50AABQN5gAAAB1VEREhCmp0tvxxx9f7jmLFy82TznlFLOgoKDK1/7ggw9MSWazZs3MsWPHWu2FhYXm+eefb86ZM6fcc/bs2WN26tTJbNu2rZmbm2u1n3/++abD4TAfe+yxGvdtx44dZmxsrCnJfOSRR8o9/vvvv5stWrQwn3nmmUpf4/333zcdDofZunVr89///ne5x2NiYsyYmBizUaNGNb41aNDAbNmypWmaprlq1SrTMAzzhx9+ME3TNNPT083x48ebJ554ojlo0CDTNE3z6quvNiWZ1157rVlUVGQuXLjQdDgc5lNPPWWapmm63W5zx44dpmma5lNPPWVKMs877zxz//79FfZpyZIl5vHHH282b97c3LVrl2mapjlz5kzzggsuMGNiYsz77rvPzMvLM03TNFesWGGeccYZZlxcnPn+++9b49qlSxczJibGXLRoUbX7AQAABI9hmod5oQUAAACbbNmyRc2aNVODBg0O63kej6fK092kkhU+Ho+n2lMEy/r111/l8Xh0yimnWG0zZ85Udna2/vKXv1inqNXERx99pA4dOlR6vaicnBzFxMRU+nyv1yvTNKvt65FavXq17r33Xs2dO9daxTV06FC53W498sgj6t+/vyZMmKDc3Fw9/vjj1vNmzJihQYMGKTEx0e/1srOz9eWXX+qy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xMTEIFUX+uLj480JEyaYeXl5ZkpKitmzZ0/T6/Vajy9YsMDs2rVrECsMffwbI7AY38BifIMjLNihGIKjolU8qD3PPvus+vfvrxEjRmjs2LH65z//KZfLJUnq37+/tm7dGuQKQ9f27ds1dOhQ6/6vv/6qc845R7t27ZLL5VKXLl10wgkn6Pfff1efPn2CWGn9MHToUK1du1b33nuvOnfurIkTJ+rqq68OdlkhKywsTG6326+tadOm2rFjh6KionT66afLMIwgVVc/rFq1ShdccIF1v3HjxhoxYoRat26tLVu26Mwzz9RNN92kf/3rX0GsMnStXLlSP/zwgxYvXqy+ffuqbdu2uummm3TVVVcpIiJCkliRdhR27dql5s2bW/dPPPFEGYahNm3aSCqZL/bv3x+k6kLfV199pTvvvFPPPfecRowYocjISL85t0OHDtqxY0cQKwx9/BsjsBjfwGJ8g8Mw+eQA1CqHw6Hs7GxFR0fr999/15VXXqmcnBzdeeed6tixo1555RVt3LhRK1asCHapIemKK65QZGSknnzySRUXF2v06NHauHGjzj33XN1xxx1asWKFbrnlFm3btk1xcXHBLjfk/OUvf1F2drbmzJmjq666ymo3DEM//fSTNmzYoHPPPVfz5s0LYpWh684779QXX3yhV155Raeffrr27t2rm2++WW63W/PmzVNWVpbi4uLk9XqDXWrIat++vW699VbrNEiPx6NzzjlHd9xxhy688EJt2bJF48eP5zTqWuDxePTNN9/o1Vdf1U8//aTx48dr1KhRSkxM5Bg+Qr1791bDhg316aefKjY2Vg899JDee+899e3bVzfffLP++9//6s8//9TChQuDXWpI++yzz3T//fdr/fr1uu+++zR69Gh5vV7dc889atSokWbOnBnsEgHgmEEodQwyTZO/xAeQ0+lUVlaWoqOjJZV8aH/zzTetMKpnz56aMmWKTjzxxCBXGpr279+vUaNG6auvvpLX69WIESP05ptv6rbbbtPHH3+sJk2aaOLEibr00kuDXWpImjFjhtLS0vTII4/o5ZdfrnS76667zsaq6o/8/Hzdeuutmj59ujwejxwOh8455xy9/vrrSkxMVG5urnr27Kk//vgj2KWGrC+++EKXXXaZunfvrtatW2vVqlVq2LChvv/+e2vFKmrf1q1b9dRTT+mTTz7Rvn37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xje4uKYUAAAAAOConH322Ro6dKj1DZ07duxQUlKS9fiuXbuUlJRkPYbD06dPH11++eXWN0ju2bNHgwYNsh5PTU3VoEGDZBiGNm/eHKwyQxbjGzyEUgAAAACAo8I3dAYW3yAZWIxv8Bgma88AAAAAAABgM64pBQAAAAAAANsRSgEAAAAAAMB2hFIAAAAAAACwHaEUAAAAAAAAbEcoBQAAAAAAANsRSgEAAAAAAMB2hFIAAAB1zMKFC5Wenl6uPTs7Wzk5OUGoCAAAoPYRSgEAAASQ0+lUp06d1LVr13K36OhozZw502970zQ1evRozZkzR5K0Zs0aPf7445Kka6+9Vu+//77tfQAAAAiEsGAXAAAAUJ+5XC599913io+PL/fYwIEDFRsb69c2f/58hYeH69prr5Ukffzxx1q5cqUkacSIEZo9e7b++te/Br5wAACAAGOlFAAAQABFRERU+bjL5fK7/+STT+q2226T0+mUx+PRtGnTNHbsWEnSRRddpK+++krbt28PWL0AAAB2YaUUAABAABmGoTPPPFNOp7PcY5s3b/a7P3v2bC1ZskS33HKLJGnq1KmKj4/X4MGDJUlxcXG69dZb9cADD+itt94KfPEAAAABRCgFAAAQYFWdvueTkZGh8ePHW9ulpqbqnnvu0bx58/ye8+CDD6pjx456//33dfnllwe0bgAAgEAilAIAAAig4uLiGm334Ycf6uyzz1Z6err27NmjwYMHq127djrrrLMUHh7ut23v3r11ww03qH///kpISAhE2QAAAAHHNaUAAAACxO12Ky8vr0bb3njjjXrttdckSU2aNNG9996rH374QT///LOOO+44HThwQAcOHNB5552nK664QqtWrSKQAgAAIY2VUgAAAAGyf/9+SdIpp5xS4eO7d+/2u++76LnL5dKNN95ovUbLli2tbYqKihQdHa02bdoEoGIAAAD7EEoBAAAEyPLly5WYmKjU1NQKHy99TanKfP/99+rTp491v6CgQA0aNKilCgEAAIKH0/cAAAAC5K233tK55557WM8xTdP6OS8vT9OmTdPFF19stWVlZSkmJqa2SgQAAAgaVkoBAAAEwLJlyzRr1iwtX7683GO///67srOztXXrVkVERPg9VlRUpKKiImVmZuryyy9Xnz591K9fP/3+++/atm2bVq9e7Xc6HwAAQKhipRQAAEAt83q9uu+++3T77bfrpJNOKvf4G2+8oX79+ikhIUG9evXye8wXSk2ZMkUul0tTp06VJH311Ve69dZbNXbsWHXq1MmWfgAAAASSYZZeIw4AAIBaUVRUpLCwMDkc5f8G6Ha75XQ6ZRhGla/h9XorfD4AAEB9QCgFAAAAAAAA2/GnNwAAAAAAANiOUAoAAAAAAAC2I5QCAAAAAACA7QilAAAAAAAAYDtCKQAAAAAAANiOUAoAAAAAAAC2I5QCAAAAAACA7QilAAAAAAAAYDtCKQAAAAAAANju/wEyDccHEofCFAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import datetime\n",
    "\n",
    "# ===== 参数 =====\n",
    "symbol = \"M0\"\n",
    "year_spans = [2, 3, 5, 8, 10, 13]\n",
    "\n",
    "today = datetime.datetime.today()\n",
    "full_start_date = (today - pd.DateOffset(years=max(year_spans))).strftime('%Y%m%d')\n",
    "end_date = today.strftime('%Y%m%d')\n",
    "\n",
    "# ===== 获取数据 =====\n",
    "df = ak.futures_main_sina(symbol=symbol, start_date=full_start_date, end_date=end_date)\n",
    "df[\"日期\"] = pd.to_datetime(df[\"日期\"])\n",
    "df = df.sort_values(\"日期\")\n",
    "\n",
    "# ===== 统计每年周期内的上涨月份次数 =====\n",
    "bar_data = {}\n",
    "\n",
    "for years in year_spans:\n",
    "    cutoff = today - pd.DateOffset(years=years)\n",
    "    df_cut = df[df[\"日期\"] >= cutoff].copy()\n",
    "\n",
    "    df_cut[\"ym\"] = df_cut[\"日期\"].dt.to_period(\"M\")\n",
    "\n",
    "    # 获取每月首日开盘与末日收盘\n",
    "    monthly = df_cut.groupby(\"ym\").agg(\n",
    "        open_price=(\"开盘价\", \"first\"),\n",
    "        close_price=(\"收盘价\", \"last\"),\n",
    "        month=(\"日期\", lambda x: x.iloc[0].month)\n",
    "    )\n",
    "    monthly[\"up\"] = monthly[\"close_price\"] > monthly[\"open_price\"]\n",
    "\n",
    "    # 每月上涨次数\n",
    "    up_counts = monthly.groupby(\"month\")[\"up\"].sum()\n",
    "    total_counts = monthly.groupby(\"month\")[\"up\"].count()\n",
    "    up_counts = up_counts.reindex(range(1, 13), fill_value=0)\n",
    "    total_counts = total_counts.reindex(range(1, 13), fill_value=0)\n",
    "\n",
    "    bar_data[years] = up_counts\n",
    "\n",
    "    total_up = up_counts.sum()\n",
    "    total_months = total_counts.sum()\n",
    "    prob = total_up / total_months if total_months else 0\n",
    "\n",
    "    print(f\"最近 {years} 年上涨月数 / 总月数：{total_up:.0f} / {total_months:.0f} ≈ {prob:.2%}\")\n",
    "\n",
    "# ===== 画图：上涨次数 =====\n",
    "plt.figure(figsize=(12, 6))\n",
    "bar_width = 0.1\n",
    "months = np.arange(1, 13)\n",
    "offsets = np.linspace(-bar_width * len(year_spans) / 2, bar_width * len(year_spans) / 2, len(year_spans))\n",
    "\n",
    "for i, years in enumerate(year_spans):\n",
    "    counts = bar_data[years]\n",
    "    plt.bar(months + offsets[i], counts.values, width=bar_width, label=f\"{years}年\")\n",
    "\n",
    "plt.xticks(months, [f\"{m}月\" for m in months], rotation=-90)\n",
    "plt.xlabel(\"月份\")\n",
    "plt.ylabel(\"上涨次数\")\n",
    "plt.title(f\"{symbol.upper()} 各周期每月上涨次数\")\n",
    "plt.grid(axis='y', linestyle='--', alpha=0.5)\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
